<?php

class Empresas extends CI_Controller
{

    function __construct()
    {
        parent::__construct();
        $this->load->helper('form');
        $this->load->helper('url');
        $this->load->model('empresas_model');
        $this->load->model('rubros_nombres_model');
        $this->load->model('etiquetas_model');
        $this->load->model('localidades_model');
        $this->load->model('provincias_model');
        $this->load->model('rubros_model');
        $this->load->model('telefonos_model');
        $this->load->library("funciones_basicas");
        $this->load->library('pagination');
        $this->load->library('table');
        $this->load->library('form_validation');
        $this->load->library('tank_auth');
    }

    function index()
    {
        //Si no pongo nada en la url por defecto voy a ir al metodo lists (listado de gastos)
        $this->form();
    }

    function form($id = 0)
    {

        if (!$this->tank_auth->is_logged_in())
        {
            redirect('/auth/login/');
        }
        else
        {
            if($this->tank_auth->get_username()=='guduchango')
            {
            //$data['user_id'] = $this->tank_auth->get_user_id();
            //$data['username'] = $this->tank_auth->get_username();
            //$this->load->view('welcome', $data);
            
            //Apuntadores, segun tipo formulario a mostrar (update or insert) cambian los valores, y para no repetir
            //todo de nuevo uso apuntadores.
            $data['title'] = & $title;
            $data['id'] = & $id;
            $data['empresa'] = & $empresa;
            $data['direccion'] = & $direccion;
            $data['descripcion'] = & $descripcion;
            $data['provincia_id'] = & $provincia_id;
            $data['localidad_id'] = & $localidad_id;
            $data['hs_atencion'] = & $hs_atencion;
            $data['correo'] = & $correo;
            $data['web'] = & $web;
            $data['fecha_ingreso'] = & $fecha_ingreso;
            $data['fecha_actualizacion'] = & $fecha_actualizacion;
            $data['ip'] = & $ip;
            $data['latitud_longitud'] =& $latitud_longitud;
            $data['puntaje']=& $puntaje;
            $data['str_rubros']=& $str_rubros;
            $data['str_etiquetas'] = & $str_etiquetas;
            $data['str_fijos'] = & $str_fijos;
            $data['str_celulares'] = & $str_celulares;
            $data['str_nextel'] = & $str_nextel;
            
            
            //id buscado en la tabla gastos
            $query_rows = $this->empresas_model->find($id);
            $row = $query_rows->row();

            //#############UPDATE FORM##############
            if ($query_rows->num_rows() > 0)//Si el id buscado devuelve algun resultado
            {
                //Devuelve todos los datos buscados con su correspondiente id, 
                //para mostrarlos en formulario
                $title = "Actualizar Empresa";
                $id = $row->id;
                $empresa = $row->empresa;
                $direccion = $row->direccion;
                $descripcion = $row->descripcion;
                $provincia_id = $row->provincia_id;
                $localidad_id = $row->localidad_id;
                $hs_atencion = $row->hs_atencion;
                $correo = $row->correo;
                $web = $row->web;
                $fecha_ingreso = $row->fecha_ingreso;
                $fecha_actualizacion = $row->fecha_actualizacion;
                $ip = $row->ip;
                $latitud = $row->latitud;
                $longitud= $row->longitud;
                
                //Verificar si existe latitud y longitud para 
                if($latitud!="" && $longitud!="")
                {
                    $latitud_longitud = $latitud.",".$longitud;
                }
                else
                {
                    $latitud_longitud="";
                }
                
                $puntaje= $row->puntaje;
                //Paso fecha a formato sql
                $fecha_ingreso = $this->funciones_basicas->sql_fecha($fecha_ingreso, 'larga');
                $fecha_actualizacion = $this->funciones_basicas->sql_fecha($fecha_actualizacion, 'larga');

                //Funcion para formar el listado por string con comas,
                $str_fijos = $this->funciones_basicas->str_telefonos_show($id, "1");
                $str_celulares = $this->funciones_basicas->str_telefonos_show($id, "2");
                $str_nextel = $this->funciones_basicas->str_telefonos_show($id, "3");
                $str_etiquetas = $this->funciones_basicas->str_etiquetas_show($id);
                $str_rubros = $this->funciones_basicas->str_rubros_show($id);
            }
            //#############INSERT FORM##############
            else//Si el id buscado no devuelve ningun resultado
            {
                $title = "Crear Empresa";
                //fecha siempre visible, formato comun
                $fecha_actualizacion = date("Y-m-d H:i:s");
            }

            //Array de datos de la base de datos relacionada, para eleccion de muchas opciones
            $data["provincias_array"] = $this->provincias_model->list_all();
            $data["localidades_array"] = $this->localidades_model->list_all();
            $data["rubros_array"]=$this->rubros_nombres_model->list_nombres();
            //Rubros separados por comas para el autocomplete
            $rubros_autocomplete="";
            foreach($data["rubros_array"] as $var)
            {
                $rubros_autocomplete = $var['rubros_url'] .",".$rubros_autocomplete;
            }
            $rubros_autocomplete = substr($rubros_autocomplete, 0, strlen($rubros_autocomplete) - 1);
            $data["rubros_autocomplete"]=$rubros_autocomplete;
            
            $data['css']=array('css/empresas_form',
                               'css/header',
                               'css/footer',
                               'js/jqueryui/development-bundle/themes/base/jquery-ui'
                );
            $data['js']=array(
                                
                                'js/jqueryui/js/jquery-1.8.2',
                                'js/jqueryui/development-bundle/ui/jquery.ui.core',
                                'js/jqueryui/development-bundle/ui/jquery.ui.widget',
                                'js/jqueryui/development-bundle/ui/jquery.ui.position',
                                'js/jqueryui/development-bundle/ui/jquery.ui.menu',
                                'js/jqueryui/development-bundle/ui/jquery.ui.autocomplete',
                                'js/empresas_form'
                                
                );
            $data['views']=array('includes/header_admin','empresas/empresas_form','includes/footer');
            $this->load->view("templates/general", $data);
            }
            else
            {
                $this->tank_auth->logout();
                redirect('/auth/login/');
            }
        }
    }

    function save()
    {
        $data['id'] = $this->input->post("id");
        $data['empresa'] = $this->input->post('empresa');
        $data['direccion'] = $this->input->post("direccion");
        $data['descripcion'] = $this->input->post('descripcion');
        $data['str_fijos'] = $this->input->post('str_fijos');
        $data['str_celulares'] = $this->input->post('str_celulares');
        $data['str_nextel'] = $this->input->post("str_nextel");
        $data['hs_atencion'] = $this->input->post("hs_atencion");
        $data['correo'] = $this->input->post("correo");
        $data['web'] = $this->input->post("web");
        $data['provincia_id'] = $this->input->post("provincia_id");
        $data['localidad_id'] = $this->input->post("localidad_id");
        $data['str_etiquetas'] = $this->input->post("str_etiquetas");
        $data['str_rubros'] = $this->input->post("str_rubros");
        //Esta no se pone con puntero porque se separa en 2 para luego guardarlas en longitud y latitud
        $coordenadas = $this->input->post('coordenadas');
        //Creo unos punteros para poder trabajar con ellos facilmente y no tener que poner $data['ect'] en todos lados
        $id = & $data['id'];
        $empresa = & $data['empresa'];
        $direccion = & $data['direccion'];
        $descripcion = & $data['descripcion'];
        $str_fijos = & $data['str_fijos'];
        $str_celulares = & $data['str_celulares'];
        $str_nextel = & $data['str_nextel'];
        $hs_atencion = & $data['hs_atencion'];
        $correo = & $data['correo'];
        $web = & $data['web'];
        $provincia_id = & $data['provincia_id'];
        $localidad_id = & $data['localidad_id'];
        $str_etiquetas = & $data['str_etiquetas'];
        $str_rubros =& $data['str_rubros'];
        $latitud =& $data['latitud'];
        $longitud =& $data['longitud'];
        $puntaje =& $data['puntaje'];
        
        //Separo las corrdenadas en latitud y longitud
        if($coordenadas!="")
        {
            $coordenadas_array = explode(",", $coordenadas);
            $latitud = $coordenadas_array[0];
            $longitud = $coordenadas_array[1];
        }
        else
        {
            $latitud = "";
            $longitud = "";
        }
        
        //Pasar campo empresa a empresa_url convirtiendo los espacios " " en "-" para poder bucarlo con la url.
        $empresa_url = str_replace(" ", "-", $empresa);

        //Reglas de validacion
        $this->form_validation->set_rules('empresa', 'empresa', 'required');
        $this->form_validation->set_rules('str_etiquetas', 'str_etiquetas', 'required');

        $data["provincias_array"] = $this->provincias_model->list_all();
        $data["localidades_array"] = $this->localidades_model->list_all();

        if ($this->form_validation->run() == FALSE)
        {
            if ($data['id'] == "0")
            {
                $data['title'] = "Crear Empresa";
            }
            else
            {
                $data['title'] = "Actualizar Empresa";
            }
            $data['css']=array('css/empresas_form','css/header','css/footer');
            $data['js']=array('js/empresas_form');
            $data['views']=array('includes/header_admin','empresas/empresas_form','includes/footer');
            $this->load->view("templates/general", $data);
        }
        else
        {
            //funcion que sirve para buscar la ip de la pc
            $ip = $this->funciones_basicas->get_real_ip();
            //formato para que mysql lo entienda
            $fecha_actualizacion = date("Y-m-d H:i:s");
            

            //Creo el array a insertar o actualizar en la base de datos..
            $fields = array(
                'empresa' => $empresa,
                'empresa_url' => $empresa_url,
                'direccion' => $direccion,
                'latitud' => $latitud,
                'longitud' => $longitud,
                'descripcion' => $descripcion,
                'etiquetas' => $str_etiquetas,
                'provincia_id' => $provincia_id,
                'localidad_id' => $localidad_id,
                'hs_atencion' => $hs_atencion,
                'correo' => $correo,
                'web' => $web,
                'fecha_actualizacion' => $fecha_actualizacion,
                'ip' => $ip,
                'puntaje' => $puntaje
            );

            if ($id == "0")
            {
                //Insertar una empresa Nueva
                $id = $this->empresas_model->insert($fields);
                $this->funciones_basicas->str_telefonos_save($str_fijos, '1', $id);
                $this->funciones_basicas->str_telefonos_save($str_celulares, '2', $id);
                $this->funciones_basicas->str_telefonos_save($str_nextel, '3', $id);
                $this->funciones_basicas->str_etiquetas_save($str_etiquetas, $id);
                $this->funciones_basicas->str_rubros_save($str_rubros,$id);
                redirect('empresas/lists', "refresh");
            }
            else
            {
                //Actualizar un gasto nuevo
                $this->empresas_model->update($id, $fields);
                $this->funciones_basicas->str_telefonos_save($str_fijos, '1', $id);
                $this->funciones_basicas->str_telefonos_save($str_celulares, '2', $id);
                $this->funciones_basicas->str_telefonos_save($str_nextel, '3', $id);
                $this->funciones_basicas->str_etiquetas_save($str_etiquetas, $id);
                $this->funciones_basicas->str_rubros_save($str_rubros,$id);
                redirect('empresas/form/'.$id.'.html', "refresh");
            }
            
        }
    }

    //Eliminar datos de la tabla
    public function delete($id)
    {
        $this->empresas_model->delete($id);
        redirect('empresas/lists', "refresh");
    }

    //Listar datos de la tabla
    public function lists()
    {

        $start = $this->uri->segment(3); //Donde empieza el limite
        if($start=="")
            $start=0;
        $result_number = 25; //Cantidad de resultados por pagin
        //Link de las acciones en el vista list
        
        $config['base_url'] = base_url() . 'empresas/lists';
        $config['total_rows'] = $this->empresas_model->count();
        $config['per_page'] = $result_number;
        $config['num_links'] = 3;
        //iniciamos la paginacion
        $this->pagination->initialize($config);
        $data['empresas_array'] = $this->empresas_model->list_all_limit($start, $result_number);
        $data['title'] = "Listado Empresas";
        $data['css']=array('css/header','css/footer','css/empresas_list');
        $data['js']=array('js/empresas_form');
        $data['views']=array('includes/header_admin','empresas/empresas_list','includes/footer');
        $this->load->view("templates/general", $data);
    }

    

    function ajax_check()
    {
        $nombre = $this->input->post('name');
        $nombre = trim($nombre);
        $value = $this->input->post('value');
        $value = trim($value);

        if ($value != "")
        {
            $array_numeros = explode(",", $value);
            foreach ($array_numeros as $var)
            {
                $total = $this->empresas_model->find_ajax($nombre, $var);
                if ($total == "0")
                {
                    $result = $nombre . "-true";
                }
                else
                {
                    $result = $nombre . "-false";
                    break;
                }
            }

            echo $result;
        }

       
    }
    
    
}